perm filename WEIRD.LSP[F87,JMC] blob sn#850857 filedate 1987-12-28 generic text, type T, neo UTF8
;;; -*- Syntax: Common-lisp; Package: PZ; Default-character-style: (:FIX :BOLD :NORMAL) -*-


(goalp *base-board*) => T

(stored-successors nil *base-board*) => (12 15)
(stored-successors '(12) *base-board*) => (8 11)
(stored-successors '(11 12) *base-board*) => (7 10 15) 

(coerce (board-position *base-board*) 'list) => (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 :BLANK)

(check-goodness *base-board*)
(check-goodness  *easy-puzzle*)
(evaluate-initial-position *easy-puzzle*)
(describe  *easy-puzzle*)

(man-dist 1 4 4) => 3
(man-dist 5 4 4) => 4
(man-dist 9 4 4) => 5
(man-dist 13 4 4) => 6
(man-dist 6 7 4) => 1
(man-dist 1 16 4) => 6
(man-dist 2 15 4) => 4
(better *easy-puzzle* *original-board*)
(evaluate-initial-position *easy-puzzle*)
(manhattan-distance *solved-board* *easy-puzzle*)
(loop for ix from 1 to 16
      collect (row ix *base-board*)) => (1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4) 
(loop for ix from 1 to 16
      collect (column ix *base-board*)) => (1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4)
(loop for ix from 1 to 16
      collect (leftsquare ix *base-board*)) => (1 1 1 1 5 5 5 5 9 9 9 9 13 13 13 13)
(showboard (random-board))
(initialize-problem *random-board*)
(showboard *random-board*)
(evaluate-initial-position *random-board*)

(showboard *solved-board*)
(contiguous 12 13 *solved-board* ) => NIL
(contiguous 12 15 *solved-board* ) => T
(contiguous 11 15 *solved-board* ) => T
(contiguous 4 5 *solved-board* ) => NIL

(progn (showboard *stuck*)
       (copy-board-position *base-board* *stuck*)
       (initialize-problem *base-board*)
       (wired-make-intervening-moves
	      (reverse '(15 14 13 9 10 11 12 16 15 14 13 9 10 11 15 16 12 16 15 11)) nil *base-board*)
       (showboard *base-board*))

(showboard (random-board :pathlen 4))